<!-- @format -->
<script setup>
	import { ref } from 'vue'
	// 子传父的语法（口诀）：2步
	// 1. 父组件内，子组件的自定义标签上，绑定自定义事件， @自定义事件="父修改数据的函数" (父监听/绑定)
	// 2. 子组件在恰当时机，触发自定义事件，导致父组件修改数据函数的执行，emit('自定义事件', 携带的参数...) （子触发/通知）
	const props = defineProps(['imgUrl', 'title', 'price', 'idx'])
	// 拿到触发自定义事件的函数 emit
	const emit = defineEmits()
	// 子组件的数据，每次减少的价格
	const x = ref(3)

	// 点击子组件砍价按钮
	const onCut = () => {
		emit('ccc', props.idx, x.value)
	}
</script>

<template>
	<div class="item">
		<img
			:src="imgUrl"
			alt="竹制干泡茶盘正方形沥水茶台品茶盘" />
		<p class="name">{{ title }}</p>
		<p class="price">
			<span>{{ price }}.00</span>
			<button @click="onCut">砍一刀</button>
		</p>
	</div>
</template>

<style scoped lang="scss">
	.item {
		width: 240px;
		margin-left: 10px;
		padding: 20px 30px;
		transition: all 0.5s;
		margin-bottom: 20px;
		.item:nth-child(4n) {
			margin-left: 0;
		}

		&:hover {
			box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
			transform: translate3d(0, -4px, 0);
			cursor: pointer;
		}

		img {
			width: 100%;
		}

		.name {
			font-size: 18px;
			margin-bottom: 10px;
			color: #666;
		}

		.price {
			display: flex;
			align-items: center;
			height: 36px;
			font-size: 22px;
			color: firebrick;
			button {
				margin-left: 50px;
				font-size: 14px;
			}
		}

		.price::before {
			content: '¥';
			font-size: 22px;
		}
	}
</style>
